$(function () {
    var studentInfo_datagrid = $("#studentInfo_datagrid");
    var studentInfo_dialog = $("#studentInfo_dialog");
    var studentInfo_form = $("#studentInfo_form");

    //给 a链接统一绑定事件
    $("a[data-cmd]").click(function () {
        var methodName = $(this).data("cmd");
        //调用方法
        methodObj[methodName]();
    });

    studentInfo_datagrid.datagrid({
        url: '/studentInfo/query.do',
        fit: true,
        fitColumns: true,
        columns: [[
            {field: 'realName', title: '真实姓名', width: 80},
            {field: 'idNumber', title: '身份证', width: 80},
            {field: 'phoneNumber', title: '手机号码', width: 80},
            {field: 'email', title: '邮箱', width: 80},
            {field: 'address', title: '地址', width: 80},
            {field: 'schoolName', title: '学校名称', width: 80},
            {field: 'emergencyContactName', title: '紧急联系人', width: 80},
            {field: 'emergencyContactPhone', title: '紧急联系人电话', width: 80},
            {
                field: 'grade',
                title: '所在班级',
                width: 80,
                formatter: function (value) {
                    return value ? value.className : ''
                }
            },
            {
                field: 'teacher',
                title: '班主任',
                width: 80,
                formatter: function (value) {
                    return value ? value.realname : ''
                }
            },
            {field: 'remark', title: '信息备注', width: 80},
        ]],
        toolbar: '#studentInfo_toolbar',
        singleSelect: true,
        rownumbers: true,
        pagination: true,
        toolbar: '#studentInfo_toobar',
        singleSelect: true,
        rownumbers: true,
        pagination: true
    });

    studentInfo_dialog.dialog({
        width: 350,
        height: 420,
        closed: true,
        resizable: false,
        buttons: [
            {
                text: '提交',
                iconCls: 'icon-save',
                handler: function () {
                    methodObj.save();
                }
            },
            {
                text: '取消',
                iconCls: 'icon-cancel',
                handler: function () {
                    methodObj.cancel();
                }
            }
        ],
        //清空表单数据
        onClose: function () {
            studentInfo_form.form('clear');
        }
    });

    //使用一个对象来统一管理实践的方法
    var methodObj = {
        add: function () {
            //弹出表格窗口
            studentInfo_dialog.dialog("open");

            //设置标题
            studentInfo_dialog.dialog('setTitle', '填写个人信息');
        },
        edit: function () {
            //判断是否选中了数据
            var row = studentInfo_datagrid.datagrid('getSelected');
            if (!row) {
                //如果没有选中 提示框提示信息
                $.messager.alert("温馨提示", "请选中一条数据", "warning");
                return;
            }

            //设置只读属性为false
            $(".easyui-combobox").combobox({
                readonly: false
            })

            $(".easyui-textbox").textbox({
                readonly: false
            })

            $(".easyui-datebox").datebox({
                readonly: false
            })

            $(".textarea").validatebox({
                readonly: false
            })

            //处理班级数据
            row["grade.id"] = row.grade.id;
            //处理班主任
            row["teacher.id"] = row.teacher.id;

            //选中了一条数据 回显表单数据(根据同名匹配原则 row对象中的属性名要与form中name相同才可以回显)
            studentInfo_form.form('load', row);

            //弹出表格窗口
            studentInfo_dialog.dialog("open");

            //设置标题
            studentInfo_dialog.dialog('setTitle', '修改个人信息');
        },
        //保存操作
        save: function () {
            //提交表单
            studentInfo_form.form('submit', {
                url: '/studentInfo/saveOrUpdate.do',
                success: function (data) {
                    //转换为json对象
                    data = $.parseJSON(data);
                    if (data.success) {
                        //提示用户操作结果
                        $.messager.alert('温馨提示', '提交成功,如果要修改,请联系自己的班主任', 'info', function () {
                            //关闭弹出框
                            methodObj.cancel();
                            // load 加载和显示第一页的所有行
                            studentInfo_datagrid.datagrid('reload')
                        })
                    } else {
                        $.messager.alert('温馨提示', data.msg, 'error')
                    }
                }
            })
        },
        //取消操作
        cancel: function () {
            studentInfo_dialog.dialog('close');
            $("#import_dialog").dialog('close')
        },
        //查看个人信息
        look: function () {
            //判断是否选中了数据
            var row = studentInfo_datagrid.datagrid('getSelected');
            if (!row) {
                //如果没有选中 提示框提示信息
                $.messager.alert("温馨提示", "请选中一条数据", "warning");
                return;
            }

            $(".easyui-combobox").combobox({
                readonly: true
            })

            $(".easyui-textbox").textbox({
                readonly: true
            })

            $(".easyui-datebox").datebox({
                readonly: true
            })

            $(".textarea").validatebox({
                readonly: true
            })

            //处理班级数据
            row["grade.id"] = row.grade.id;

            //处理班主任
            row["teacher.id"] = row.teacher.id;

            //选中了一条数据 回显表单数据(根据同名匹配原则 row对象中的属性名要与form中name相同才可以回显)
            studentInfo_form.form('load', row);

            //弹出表格窗口
            studentInfo_dialog.dialog("open");

            //设置标题
            studentInfo_dialog.dialog('setTitle', '查看个人申请信息');
        },
        revoke: function () {
            //判断是否选中了数据
            var row = studentInfo_datagrid.datagrid('getSelected');
            if (!row) {
                //如果没有选中 提示框提示信息
                $.messager.alert("温馨提示", "请选中您要撤销的信息", "warning");
                return;
            }
            //弹出确认框 确认改变状态
            $.messager.confirm('确认', '确认撤销该信息吗?', function (r) {
                if (r) {
                    //发送请求到后台
                    $.get("/studentInfo/deleteByStudentId.do", {id: row.id}, function (data) {
                        if (data.success) {
                            $.messager.alert('温馨提示', '撤销成功', 'info', function () {
                                //刷新当前页面
                                userinfo_datagrid.datagrid('reload');
                            });
                        } else {
                            $.messager.alert('温馨提示', data.msg, 'error');
                        }
                    })
                }
            })
        }
    }
});
